import server from "../utils/request.js";

/**
 * 提交巡更记录
 * @param {Object} record - 巡更记录信息
 * @returns Promise
 */
export function submitRecord(record) {
    return server({
        url: '/patrol/record/submit',
        method: 'POST',
        data: record
    })
}

/**
 * 获取所有巡更记录
 * @returns Promise
 */
export function getAll() {
    return server({
        url: '/patrol/record/list',
        method: 'GET'
    })
}

/**
 * 按任务查询巡更记录
 * @param {Number} taskId - 任务ID
 * @returns Promise
 */
export function getRecordByTask(taskId) {
    return server({
        url: '/patrol/record/byTask',
        method: 'GET',
        params: { taskId }
    })
}

/**
 * 按点位查询巡更记录
 * @param {Number} pointId - 点位ID
 * @returns Promise
 */
export function getRecordByPoint(pointId) {
    return server({
        url: '/patrol/record/byPoint',
        method: 'GET',
        params: { pointId }
    })
}

/**
 * 按社区查询巡更记录
 * @param {Object} params - 查询参数
 * @param {Number} params.communityId - 社区ID
 * @param {String} [params.startTime] - 开始时间
 * @param {String} [params.endTime] - 结束时间
 * @param {Number} params.pageNum - 页码
 * @param {Number} params.pageSize - 每页条数
 * @returns Promise
 */
export function getRecordByCommunity(params) {
    return server({
        url: '/patrol/record/byCommunity',
        method: 'GET',
        params: params
    })
}

/**
 * 导出巡更记录
 * @param {Object} params - 导出参数
 * @param {Number} params.communityId - 社区ID
 * @param {String} [params.startTime] - 开始时间
 * @param {String} [params.endTime] - 结束时间
 * @returns Promise
 */
export function exportRecord(params) {
    return server({
        url: '/patrol/record/export',
        method: 'GET',
        params: params,
        responseType: 'blob' // 关键：这里设置响应类型为blob
    })
}

/**
 * 获取最近异常记录
 * @param {Number} communityId - 社区ID
 * @param {Number} [limit=5] - 限制条数
 * @returns Promise
 */
export function getRecentExceptions(communityId, limit = 5) {
    return server({
        url: '/patrol/record/recentExceptions',
        method: 'GET',
        params: { communityId, limit }
    })
}